home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Source / Rtl / Win / OleCtl.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-05-22  |  38.5 KB  |  1,092 lines

  1. { *********************************************************************** }
  2. {                                                                         }
  3. { Delphi Runtime Library                                                  }
  4. {                                                                         }
  5. { Copyright (c) 1996-2001 Borland Software Corporation                    }
  6. {                                                                         }
  7. { *********************************************************************** }
  8.  
  9. {*******************************************************}
  10. {       OLE Controls interface unit                     }
  11. {*******************************************************}
  12.  
  13. unit OleCtl;
  14.  
  15. {$WEAKPACKAGEUNIT}
  16.  
  17. interface
  18.  
  19. (*$HPPEMIT '' *)
  20. (*$HPPEMIT '#include <ocidl.h>' *)
  21. (*$HPPEMIT '#include <olectl.h>' *)
  22. (*$HPPEMIT '' *)
  23.  
  24. uses Windows, Messages, Ole2;
  25.  
  26. const
  27.  
  28. { OLE control status codes }
  29.  
  30.   {$EXTERNALSYM CTL_E_ILLEGALFUNCTIONCALL}
  31.   CTL_E_ILLEGALFUNCTIONCALL       = $800A0000 + 5;
  32.   {$EXTERNALSYM CTL_E_OVERFLOW}
  33.   CTL_E_OVERFLOW                  = $800A0000 + 6;
  34.   {$EXTERNALSYM CTL_E_OUTOFMEMORY}
  35.   CTL_E_OUTOFMEMORY               = $800A0000 + 7;
  36.   {$EXTERNALSYM CTL_E_DIVISIONBYZERO}
  37.   CTL_E_DIVISIONBYZERO            = $800A0000 + 11;
  38.   {$EXTERNALSYM CTL_E_OUTOFSTRINGSPACE}
  39.   CTL_E_OUTOFSTRINGSPACE          = $800A0000 + 14;
  40.   {$EXTERNALSYM CTL_E_OUTOFSTACKSPACE}
  41.   CTL_E_OUTOFSTACKSPACE           = $800A0000 + 28;
  42.   {$EXTERNALSYM CTL_E_BADFILENAMEORNUMBER}
  43.   CTL_E_BADFILENAMEORNUMBER       = $800A0000 + 52;
  44.   {$EXTERNALSYM CTL_E_FILENOTFOUND}
  45.   CTL_E_FILENOTFOUND              = $800A0000 + 53;
  46.   {$EXTERNALSYM CTL_E_BADFILEMODE}
  47.   CTL_E_BADFILEMODE               = $800A0000 + 54;
  48.   {$EXTERNALSYM CTL_E_FILEALREADYOPEN}
  49.   CTL_E_FILEALREADYOPEN           = $800A0000 + 55;
  50.   {$EXTERNALSYM CTL_E_DEVICEIOERROR}
  51.   CTL_E_DEVICEIOERROR             = $800A0000 + 57;
  52.   {$EXTERNALSYM CTL_E_FILEALREADYEXISTS}
  53.   CTL_E_FILEALREADYEXISTS         = $800A0000 + 58;
  54.   {$EXTERNALSYM CTL_E_BADRECORDLENGTH}
  55.   CTL_E_BADRECORDLENGTH           = $800A0000 + 59;
  56.   {$EXTERNALSYM CTL_E_DISKFULL}
  57.   CTL_E_DISKFULL                  = $800A0000 + 61;
  58.   {$EXTERNALSYM CTL_E_BADRECORDNUMBER}
  59.   CTL_E_BADRECORDNUMBER           = $800A0000 + 63;
  60.   {$EXTERNALSYM CTL_E_BADFILENAME}
  61.   CTL_E_BADFILENAME               = $800A0000 + 64;
  62.   {$EXTERNALSYM CTL_E_TOOMANYFILES}
  63.   CTL_E_TOOMANYFILES              = $800A0000 + 67;
  64.   {$EXTERNALSYM CTL_E_DEVICEUNAVAILABLE}
  65.   CTL_E_DEVICEUNAVAILABLE         = $800A0000 + 68;
  66.   {$EXTERNALSYM CTL_E_PERMISSIONDENIED}
  67.   CTL_E_PERMISSIONDENIED          = $800A0000 + 70;
  68.   {$EXTERNALSYM CTL_E_DISKNOTREADY}
  69.   CTL_E_DISKNOTREADY              = $800A0000 + 71;
  70.   {$EXTERNALSYM CTL_E_PATHFILEACCESSERROR}
  71.   CTL_E_PATHFILEACCESSERROR       = $800A0000 + 75;
  72.   {$EXTERNALSYM CTL_E_PATHNOTFOUND}
  73.   CTL_E_PATHNOTFOUND              = $800A0000 + 76;
  74.   {$EXTERNALSYM CTL_E_INVALIDPATTERNSTRING}
  75.   CTL_E_INVALIDPATTERNSTRING      = $800A0000 + 93;
  76.   {$EXTERNALSYM CTL_E_INVALIDUSEOFNULL}
  77.   CTL_E_INVALIDUSEOFNULL          = $800A0000 + 94;
  78.   {$EXTERNALSYM CTL_E_INVALIDFILEFORMAT}
  79.   CTL_E_INVALIDFILEFORMAT         = $800A0000 + 321;
  80.   {$EXTERNALSYM CTL_E_INVALIDPROPERTYVALUE}
  81.   CTL_E_INVALIDPROPERTYVALUE      = $800A0000 + 380;
  82.   {$EXTERNALSYM CTL_E_INVALIDPROPERTYARRAYINDEX}
  83.   CTL_E_INVALIDPROPERTYARRAYINDEX = $800A0000 + 381;
  84.   {$EXTERNALSYM CTL_E_SETNOTSUPPORTEDATRUNTIME}
  85.   CTL_E_SETNOTSUPPORTEDATRUNTIME  = $800A0000 + 382;
  86.   {$EXTERNALSYM CTL_E_SETNOTSUPPORTED}
  87.   CTL_E_SETNOTSUPPORTED           = $800A0000 + 383;
  88.   {$EXTERNALSYM CTL_E_NEEDPROPERTYARRAYINDEX}
  89.   CTL_E_NEEDPROPERTYARRAYINDEX    = $800A0000 + 385;
  90.   {$EXTERNALSYM CTL_E_SETNOTPERMITTED}
  91.   CTL_E_SETNOTPERMITTED           = $800A0000 + 387;
  92.   {$EXTERNALSYM CTL_E_GETNOTSUPPORTEDATRUNTIME}
  93.   CTL_E_GETNOTSUPPORTEDATRUNTIME  = $800A0000 + 393;
  94.   {$EXTERNALSYM CTL_E_GETNOTSUPPORTED}
  95.   CTL_E_GETNOTSUPPORTED           = $800A0000 + 394;
  96.   {$EXTERNALSYM CTL_E_PROPERTYNOTFOUND}
  97.   CTL_E_PROPERTYNOTFOUND          = $800A0000 + 422;
  98.   {$EXTERNALSYM CTL_E_INVALIDCLIPBOARDFORMAT}
  99.   CTL_E_INVALIDCLIPBOARDFORMAT    = $800A0000 + 460;
  100.   {$EXTERNALSYM CTL_E_INVALIDPICTURE}
  101.   CTL_E_INVALIDPICTURE            = $800A0000 + 481;
  102.   {$EXTERNALSYM CTL_E_PRINTERERROR}
  103.   CTL_E_PRINTERERROR              = $800A0000 + 482;
  104.   {$EXTERNALSYM CTL_E_CANTSAVEFILETOTEMP}
  105.   CTL_E_CANTSAVEFILETOTEMP        = $800A0000 + 735;
  106.   {$EXTERNALSYM CTL_E_SEARCHTEXTNOTFOUND}
  107.   CTL_E_SEARCHTEXTNOTFOUND        = $800A0000 + 744;
  108.   {$EXTERNALSYM CTL_E_REPLACEMENTSTOOLONG}
  109.   CTL_E_REPLACEMENTSTOOLONG       = $800A0000 + 746;
  110.  
  111.   {$EXTERNALSYM CTL_E_CUSTOM_FIRST}
  112.   CTL_E_CUSTOM_FIRST = $800A0000 + 600;
  113.  
  114. { IClassFactory2 status codes }
  115.  
  116.   {$EXTERNALSYM CLASS_E_NOTLICENSED}
  117.   CLASS_E_NOTLICENSED = CLASSFACTORY_E_FIRST + 2;
  118.  
  119. { IConnectionPoint status codes }
  120.  
  121.   {$EXTERNALSYM CONNECT_E_FIRST}
  122.   CONNECT_E_FIRST = $80040200;
  123.   {$EXTERNALSYM CONNECT_E_LAST}
  124.   CONNECT_E_LAST  = $8004020F;
  125.   {$EXTERNALSYM CONNECT_S_FIRST}
  126.   CONNECT_S_FIRST = $00040200;
  127.   {$EXTERNALSYM CONNECT_S_LAST}
  128.   CONNECT_S_LAST  = $0004020F;
  129.  
  130.   {$EXTERNALSYM CONNECT_E_NOCONNECTION}
  131.   CONNECT_E_NOCONNECTION  = CONNECT_E_FIRST + 0;
  132.   {$EXTERNALSYM CONNECT_E_ADVISELIMIT}
  133.   CONNECT_E_ADVISELIMIT   = CONNECT_E_FIRST + 1;
  134.   {$EXTERNALSYM CONNECT_E_CANNOTCONNECT}
  135.   CONNECT_E_CANNOTCONNECT = CONNECT_E_FIRST + 2;
  136.   {$EXTERNALSYM CONNECT_E_OVERRIDDEN}
  137.   CONNECT_E_OVERRIDDEN    = CONNECT_E_FIRST + 3;
  138.  
  139. { DllRegisterServer/DllUnregisterServer status codes }
  140.  
  141.   {$EXTERNALSYM SELFREG_E_FIRST}
  142.   SELFREG_E_FIRST = $80040200;
  143.   {$EXTERNALSYM SELFREG_E_LAST}
  144.   SELFREG_E_LAST  = $80040200;
  145.   {$EXTERNALSYM SELFREG_S_FIRST}
  146.   SELFREG_S_FIRST = $00040200;
  147.   {$EXTERNALSYM SELFREG_S_LAST}
  148.   SELFREG_S_LAST  = $00040200;
  149.  
  150.   {$EXTERNALSYM SELFREG_E_TYPELIB}
  151.   SELFREG_E_TYPELIB = SELFREG_E_FIRST + 0;
  152.   {$EXTERNALSYM SELFREG_E_CLASS}
  153.   SELFREG_E_CLASS   = SELFREG_E_FIRST + 1;
  154.  
  155. { IPerPropertyBrowsing status codes }
  156.  
  157.   {$EXTERNALSYM PERPROP_E_FIRST}
  158.   PERPROP_E_FIRST = $80040200;
  159.   {$EXTERNALSYM PERPROP_E_LAST}
  160.   PERPROP_E_LAST  = $8004020F;
  161.   {$EXTERNALSYM PERPROP_S_FIRST}
  162.   PERPROP_S_FIRST = $00040200;
  163.   {$EXTERNALSYM PERPROP_S_LAST}
  164.   PERPROP_S_LAST  = $0004020F;
  165.  
  166.   {$EXTERNALSYM PERPROP_E_NOPAGEAVAILABLE}
  167.   PERPROP_E_NOPAGEAVAILABLE = PERPROP_E_FIRST + 0;
  168.  
  169. { Additional OLEMISC constants }
  170.  
  171.   {$EXTERNALSYM OLEMISC_INVISIBLEATRUNTIME}
  172.   OLEMISC_INVISIBLEATRUNTIME = $00000400;
  173.   {$EXTERNALSYM OLEMISC_ALWAYSRUN}
  174.   OLEMISC_ALWAYSRUN          = $00000800;
  175.   {$EXTERNALSYM OLEMISC_ACTSLIKEBUTTON}
  176.   OLEMISC_ACTSLIKEBUTTON     = $00001000;
  177.   {$EXTERNALSYM OLEMISC_ACTSLIKELABEL}
  178.   OLEMISC_ACTSLIKELABEL      = $00002000;
  179.   {$EXTERNALSYM OLEMISC_NOUIACTIVATE}
  180.   OLEMISC_NOUIACTIVATE       = $00004000;
  181.   {$EXTERNALSYM OLEMISC_ALIGNABLE}
  182.   OLEMISC_ALIGNABLE          = $00008000;
  183.   {$EXTERNALSYM OLEMISC_SIMPLEFRAME}
  184.   OLEMISC_SIMPLEFRAME        = $00010000;
  185.   {$EXTERNALSYM OLEMISC_SETCLIENTSITEFIRST}
  186.   OLEMISC_SETCLIENTSITEFIRST = $00020000;
  187.   {$EXTERNALSYM OLEMISC_IMEMODE}
  188.   OLEMISC_IMEMODE            = $00040000;
  189.  
  190. { Additional OLEIVERB constants }
  191.  
  192.   {$EXTERNALSYM OLEIVERB_PROPERTIES}
  193.   OLEIVERB_PROPERTIES = -7;
  194.  
  195. { Additional variant type tags for property sets }
  196.  
  197.   {$EXTERNALSYM VT_STREAMED_PROPSET}
  198.   VT_STREAMED_PROPSET = 73;  { Stream contains a property set }
  199.   {$EXTERNALSYM VT_STORED_PROPSET}
  200.   VT_STORED_PROPSET   = 74;  { Storage contains a property set }
  201.   {$EXTERNALSYM VT_BLOB_PROPSET}
  202.   VT_BLOB_PROPSET     = 75;  { Blob contains a property set }
  203.  
  204. { Variant type tags that are just aliases for others }
  205.  
  206.   {$EXTERNALSYM VT_COLOR}
  207.   VT_COLOR          = VT_I4;
  208.   {$EXTERNALSYM VT_XPOS_PIXELS}
  209.   VT_XPOS_PIXELS    = VT_I4;
  210.   {$EXTERNALSYM VT_YPOS_PIXELS}
  211.   VT_YPOS_PIXELS    = VT_I4;
  212.   {$EXTERNALSYM VT_XSIZE_PIXELS}
  213.   VT_XSIZE_PIXELS   = VT_I4;
  214.   {$EXTERNALSYM VT_YSIZE_PIXELS}
  215.   VT_YSIZE_PIXELS   = VT_I4;
  216.   {$EXTERNALSYM VT_XPOS_HIMETRIC}
  217.   VT_XPOS_HIMETRIC  = VT_I4;
  218.   {$EXTERNALSYM VT_YPOS_HIMETRIC}
  219.   VT_YPOS_HIMETRIC  = VT_I4;
  220.   {$EXTERNALSYM VT_XSIZE_HIMETRIC}
  221.   VT_XSIZE_HIMETRIC = VT_I4;
  222.   {$EXTERNALSYM VT_YSIZE_HIMETRIC}
  223.   VT_YSIZE_HIMETRIC = VT_I4;
  224.   {$EXTERNALSYM VT_TRISTATE}
  225.   VT_TRISTATE       = VT_I2;
  226.   {$EXTERNALSYM VT_OPTEXCLUSIVE}
  227.   VT_OPTEXCLUSIVE   = VT_BOOL;
  228.   {$EXTERNALSYM VT_FONT}
  229.   VT_FONT           = VT_DISPATCH;
  230.   {$EXTERNALSYM VT_PICTURE}
  231.   VT_PICTURE        = VT_DISPATCH;
  232.   {$EXTERNALSYM VT_HANDLE}
  233.   VT_HANDLE         = VT_I4;
  234.  
  235. { Reflected window message IDs }
  236.  
  237.   {$EXTERNALSYM OCM__BASE}
  238.   OCM__BASE = WM_USER + $1C00;
  239.  
  240.   {$EXTERNALSYM OCM_COMMAND}
  241.   OCM_COMMAND           = OCM__BASE + WM_COMMAND;
  242.   {$EXTERNALSYM OCM_CTLCOLORBTN}
  243.   OCM_CTLCOLORBTN       = OCM__BASE + WM_CTLCOLORBTN;
  244.   {$EXTERNALSYM OCM_CTLCOLOREDIT}
  245.   OCM_CTLCOLOREDIT      = OCM__BASE + WM_CTLCOLOREDIT;
  246.   {$EXTERNALSYM OCM_CTLCOLORDLG}
  247.   OCM_CTLCOLORDLG       = OCM__BASE + WM_CTLCOLORDLG;
  248.   {$EXTERNALSYM OCM_CTLCOLORLISTBOX}
  249.   OCM_CTLCOLORLISTBOX   = OCM__BASE + WM_CTLCOLORLISTBOX;
  250.   {$EXTERNALSYM OCM_CTLCOLORMSGBOX}
  251.   OCM_CTLCOLORMSGBOX    = OCM__BASE + WM_CTLCOLORMSGBOX;
  252.   {$EXTERNALSYM OCM_CTLCOLORSCROLLBAR}
  253.   OCM_CTLCOLORSCROLLBAR = OCM__BASE + WM_CTLCOLORSCROLLBAR;
  254.   {$EXTERNALSYM OCM_CTLCOLORSTATIC}
  255.   OCM_CTLCOLORSTATIC    = OCM__BASE + WM_CTLCOLORSTATIC;
  256.   {$EXTERNALSYM OCM_DRAWITEM}
  257.   OCM_DRAWITEM          = OCM__BASE + WM_DRAWITEM;
  258.   {$EXTERNALSYM OCM_MEASUREITEM}
  259.   OCM_MEASUREITEM       = OCM__BASE + WM_MEASUREITEM;
  260.   {$EXTERNALSYM OCM_DELETEITEM}
  261.   OCM_DELETEITEM        = OCM__BASE + WM_DELETEITEM;
  262.   {$EXTERNALSYM OCM_VKEYTOITEM}
  263.   OCM_VKEYTOITEM        = OCM__BASE + WM_VKEYTOITEM;
  264.   {$EXTERNALSYM OCM_CHARTOITEM}
  265.   OCM_CHARTOITEM        = OCM__BASE + WM_CHARTOITEM;
  266.   {$EXTERNALSYM OCM_COMPAREITEM}
  267.   OCM_COMPAREITEM       = OCM__BASE + WM_COMPAREITEM;
  268.   {$EXTERNALSYM OCM_HSCROLL}
  269.   OCM_HSCROLL           = OCM__BASE + WM_HSCROLL;
  270.   {$EXTERNALSYM OCM_VSCROLL}
  271.   OCM_VSCROLL           = OCM__BASE + WM_VSCROLL;
  272.   {$EXTERNALSYM OCM_PARENTNOTIFY}
  273.   OCM_PARENTNOTIFY      = OCM__BASE + WM_PARENTNOTIFY;
  274.  
  275. { TControlInfo.dwFlags masks }
  276.  
  277.   {$EXTERNALSYM CTRLINFO_EATS_RETURN}
  278.   CTRLINFO_EATS_RETURN = 1;  { Control doesn't send Return to container }
  279.   {$EXTERNALSYM CTRLINFO_EATS_ESCAPE}
  280.   CTRLINFO_EATS_ESCAPE = 2;  { Control doesn't send Escape to container }
  281.  
  282. { IOleControlSite.TransformCoords flags }
  283.  
  284.   {$EXTERNALSYM XFORMCOORDS_POSITION}
  285.   XFORMCOORDS_POSITION            = 1;
  286.   {$EXTERNALSYM XFORMCOORDS_SIZE}
  287.   XFORMCOORDS_SIZE                = 2;
  288.   {$EXTERNALSYM XFORMCOORDS_HIMETRICTOCONTAINER}
  289.   XFORMCOORDS_HIMETRICTOCONTAINER = 4;
  290.   {$EXTERNALSYM XFORMCOORDS_CONTAINERTOHIMETRIC}
  291.   XFORMCOORDS_CONTAINERTOHIMETRIC = 8;
  292.  
  293. { IPropertyPageSite.OnStatusChange flags }
  294.  
  295.   {$EXTERNALSYM PROPPAGESTATUS_DIRTY}
  296.   PROPPAGESTATUS_DIRTY    = 1;  { Values in page have changed }
  297.   {$EXTERNALSYM PROPPAGESTATUS_VALIDATE}
  298.   PROPPAGESTATUS_VALIDATE = 2;  { Appropriate time to validate/apply }
  299.  
  300. { Picture attributes }
  301.  
  302.   {$EXTERNALSYM PICTURE_SCALABLE}
  303.   PICTURE_SCALABLE    = 1;
  304.   {$EXTERNALSYM PICTURE_TRANSPARENT}
  305.   PICTURE_TRANSPARENT = 2;
  306.  
  307. { TPictDesc.picType values }
  308.  
  309.   {$EXTERNALSYM PICTYPE_UNINITIALIZED}
  310.   PICTYPE_UNINITIALIZED = -1;
  311.   {$EXTERNALSYM PICTYPE_NONE}
  312.   PICTYPE_NONE          = 0;
  313.   {$EXTERNALSYM PICTYPE_BITMAP}
  314.   PICTYPE_BITMAP        = 1;
  315.   {$EXTERNALSYM PICTYPE_METAFILE}
  316.   PICTYPE_METAFILE      = 2;
  317.   {$EXTERNALSYM PICTYPE_ICON}
  318.   PICTYPE_ICON          = 3;
  319.   {$EXTERNALSYM PICTYPE_ENHMETAFILE}
  320.   PICTYPE_ENHMETAFILE   = 4;
  321.  
  322. { Standard dispatch ID constants }
  323.  
  324.   {$EXTERNALSYM DISPID_AUTOSIZE}
  325.   DISPID_AUTOSIZE      = -500;
  326.   {$EXTERNALSYM DISPID_BACKCOLOR}
  327.   DISPID_BACKCOLOR     = -501;
  328.   {$EXTERNALSYM DISPID_BACKSTYLE}
  329.   DISPID_BACKSTYLE     = -502;
  330.   {$EXTERNALSYM DISPID_BORDERCOLOR}
  331.   DISPID_BORDERCOLOR   = -503;
  332.   {$EXTERNALSYM DISPID_BORDERSTYLE}
  333.   DISPID_BORDERSTYLE   = -504;
  334.   {$EXTERNALSYM DISPID_BORDERWIDTH}
  335.   DISPID_BORDERWIDTH   = -505;
  336.   {$EXTERNALSYM DISPID_DRAWMODE}
  337.   DISPID_DRAWMODE      = -507;
  338.   {$EXTERNALSYM DISPID_DRAWSTYLE}
  339.   DISPID_DRAWSTYLE     = -508;
  340.   {$EXTERNALSYM DISPID_DRAWWIDTH}
  341.   DISPID_DRAWWIDTH     = -509;
  342.   {$EXTERNALSYM DISPID_FILLCOLOR}
  343.   DISPID_FILLCOLOR     = -510;
  344.   {$EXTERNALSYM DISPID_FILLSTYLE}
  345.   DISPID_FILLSTYLE     = -511;
  346.   {$EXTERNALSYM DISPID_FONT}
  347.   DISPID_FONT          = -512;
  348.   {$EXTERNALSYM DISPID_FORECOLOR}
  349.   DISPID_FORECOLOR     = -513;
  350.   {$EXTERNALSYM DISPID_ENABLED}
  351.   DISPID_ENABLED       = -514;
  352.   {$EXTERNALSYM DISPID_HWND}
  353.   DISPID_HWND          = -515;
  354.   {$EXTERNALSYM DISPID_TABSTOP}
  355.   DISPID_TABSTOP       = -516;
  356.   {$EXTERNALSYM DISPID_TEXT}
  357.   DISPID_TEXT          = -517;
  358.   {$EXTERNALSYM DISPID_CAPTION}
  359.   DISPID_CAPTION       = -518;
  360.   {$EXTERNALSYM DISPID_BORDERVISIBLE}
  361.   DISPID_BORDERVISIBLE = -519;
  362.  
  363.   {$EXTERNALSYM DISPID_REFRESH}
  364.   DISPID_REFRESH  = -550;
  365.   {$EXTERNALSYM DISPID_DOCLICK}
  366.   DISPID_DOCLICK  = -551;
  367.   {$EXTERNALSYM DISPID_ABOUTBOX}
  368.   DISPID_ABOUTBOX = -552;
  369.  
  370.   {$EXTERNALSYM DISPID_CLICK}
  371.   DISPID_CLICK      = -600;
  372.   {$EXTERNALSYM DISPID_DBLCLICK}
  373.   DISPID_DBLCLICK   = -601;
  374.   {$EXTERNALSYM DISPID_KEYDOWN}
  375.   DISPID_KEYDOWN    = -602;
  376.   {$EXTERNALSYM DISPID_KEYPRESS}
  377.   DISPID_KEYPRESS   = -603;
  378.   {$EXTERNALSYM DISPID_KEYUP}
  379.   DISPID_KEYUP      = -604;
  380.   {$EXTERNALSYM DISPID_MOUSEDOWN}
  381.   DISPID_MOUSEDOWN  = -605;
  382.   {$EXTERNALSYM DISPID_MOUSEMOVE}
  383.   DISPID_MOUSEMOVE  = -606;
  384.   {$EXTERNALSYM DISPID_MOUSEUP}
  385.   DISPID_MOUSEUP    = -607;
  386.   {$EXTERNALSYM DISPID_ERROREVENT}
  387.   DISPID_ERROREVENT = -608;
  388.  
  389.   {$EXTERNALSYM DISPID_AMBIENT_BACKCOLOR}
  390.   DISPID_AMBIENT_BACKCOLOR         = -701;
  391.   {$EXTERNALSYM DISPID_AMBIENT_DISPLAYNAME}
  392.   DISPID_AMBIENT_DISPLAYNAME       = -702;
  393.   {$EXTERNALSYM DISPID_AMBIENT_FONT}
  394.   DISPID_AMBIENT_FONT              = -703;
  395.   {$EXTERNALSYM DISPID_AMBIENT_FORECOLOR}
  396.   DISPID_AMBIENT_FORECOLOR         = -704;
  397.   {$EXTERNALSYM DISPID_AMBIENT_LOCALEID}
  398.   DISPID_AMBIENT_LOCALEID          = -705;
  399.   {$EXTERNALSYM DISPID_AMBIENT_MESSAGEREFLECT}
  400.   DISPID_AMBIENT_MESSAGEREFLECT    = -706;
  401.   {$EXTERNALSYM DISPID_AMBIENT_SCALEUNITS}
  402.   DISPID_AMBIENT_SCALEUNITS        = -707;
  403.   {$EXTERNALSYM DISPID_AMBIENT_TEXTALIGN}
  404.   DISPID_AMBIENT_TEXTALIGN         = -708;
  405.   {$EXTERNALSYM DISPID_AMBIENT_USERMODE}
  406.   DISPID_AMBIENT_USERMODE          = -709;
  407.   {$EXTERNALSYM DISPID_AMBIENT_UIDEAD}
  408.   DISPID_AMBIENT_UIDEAD            = -710;
  409.   {$EXTERNALSYM DISPID_AMBIENT_SHOWGRABHANDLES}
  410.   DISPID_AMBIENT_SHOWGRABHANDLES   = -711;
  411.   {$EXTERNALSYM DISPID_AMBIENT_SHOWHATCHING}
  412.   DISPID_AMBIENT_SHOWHATCHING      = -712;
  413.   {$EXTERNALSYM DISPID_AMBIENT_DISPLAYASDEFAULT}
  414.   DISPID_AMBIENT_DISPLAYASDEFAULT  = -713;
  415.   {$EXTERNALSYM DISPID_AMBIENT_SUPPORTSMNEMONICS}
  416.   DISPID_AMBIENT_SUPPORTSMNEMONICS = -714;
  417.   {$EXTERNALSYM DISPID_AMBIENT_AUTOCLIP}
  418.   DISPID_AMBIENT_AUTOCLIP          = -715;
  419.  
  420. { Dispatch ID constants for fonts }
  421.  
  422.   {$EXTERNALSYM DISPID_FONT_NAME}
  423.   DISPID_FONT_NAME    = 0;
  424.   {$EXTERNALSYM DISPID_FONT_SIZE}
  425.   DISPID_FONT_SIZE    = 2;
  426.   {$EXTERNALSYM DISPID_FONT_BOLD}
  427.   DISPID_FONT_BOLD    = 3;
  428.   {$EXTERNALSYM DISPID_FONT_ITALIC}
  429.   DISPID_FONT_ITALIC  = 4;
  430.   {$EXTERNALSYM DISPID_FONT_UNDER}
  431.   DISPID_FONT_UNDER   = 5;
  432.   {$EXTERNALSYM DISPID_FONT_STRIKE}
  433.   DISPID_FONT_STRIKE  = 6;
  434.   {$EXTERNALSYM DISPID_FONT_WEIGHT}
  435.   DISPID_FONT_WEIGHT  = 7;
  436.   {$EXTERNALSYM DISPID_FONT_CHARSET}
  437.   DISPID_FONT_CHARSET = 8;
  438.  
  439. { Dispatch ID constants for pictures }
  440.  
  441.   {$EXTERNALSYM DISPID_PICT_HANDLE}
  442.   DISPID_PICT_HANDLE = 0;
  443.   {$EXTERNALSYM DISPID_PICT_HPAL}
  444.   DISPID_PICT_HPAL   = 2;
  445.   {$EXTERNALSYM DISPID_PICT_TYPE}
  446.   DISPID_PICT_TYPE   = 3;
  447.   {$EXTERNALSYM DISPID_PICT_WIDTH}
  448.   DISPID_PICT_WIDTH  = 4;
  449.   {$EXTERNALSYM DISPID_PICT_HEIGHT}
  450.   DISPID_PICT_HEIGHT = 5;
  451.   {$EXTERNALSYM DISPID_PICT_RENDER}
  452.   DISPID_PICT_RENDER = 6;
  453.  
  454. type
  455.  
  456.   PTextMetricOle = PTextMetricW;
  457.   TTextMetricOle = TTextMetricW;
  458.  
  459.   TOleColor = Longint;
  460.  
  461.   {$EXTERNALSYM OLE_XPOS_PIXELS}
  462.   OLE_XPOS_PIXELS  = Longint;
  463.   {$EXTERNALSYM OLE_YPOS_PIXELS}
  464.   OLE_YPOS_PIXELS  = Longint;
  465.   {$EXTERNALSYM OLE_XSIZE_PIXELS}
  466.   OLE_XSIZE_PIXELS = Longint;
  467.   {$EXTERNALSYM OLE_YSIZE_PIXELS}
  468.   OLE_YSIZE_PIXELS = Longint;
  469.  
  470.   {$EXTERNALSYM OLE_XPOS_HIMETRIC}
  471.   OLE_XPOS_HIMETRIC  = Longint;
  472.   {$EXTERNALSYM OLE_YPOS_HIMETRIC}
  473.   OLE_YPOS_HIMETRIC  = Longint;
  474.   {$EXTERNALSYM OLE_XSIZE_HIMETRIC}
  475.   OLE_XSIZE_HIMETRIC = Longint;
  476.   {$EXTERNALSYM OLE_YSIZE_HIMETRIC}
  477.   OLE_YSIZE_HIMETRIC = Longint;
  478.  
  479.   {$EXTERNALSYM OLE_XPOS_CONTAINER}
  480.   OLE_XPOS_CONTAINER  = Single;
  481.   {$EXTERNALSYM OLE_YPOS_CONTAINER}
  482.   OLE_YPOS_CONTAINER  = Single;
  483.   {$EXTERNALSYM OLE_XSIZE_CONTAINER}
  484.   OLE_XSIZE_CONTAINER = Single;
  485.   {$EXTERNALSYM OLE_YSIZE_CONTAINER}
  486.   OLE_YSIZE_CONTAINER = Single;
  487.  
  488.   OLE_TRISTATE = (triUnchecked, triChecked, triGray);
  489.  
  490.   {$EXTERNALSYM OLE_OPTEXCLUSIVE}
  491.   OLE_OPTEXCLUSIVE = Bool;
  492.  
  493.   {$EXTERNALSYM OLE_CANCELBOOL}
  494.   OLE_CANCELBOOL = Bool;
  495.  
  496.   {$EXTERNALSYM OLE_ENABLEDEFAULTBOOL}
  497.   OLE_ENABLEDEFAULTBOOL = Bool;
  498.  
  499.   {$EXTERNALSYM OLE_HANDLE}
  500.   OLE_HANDLE = Longint;
  501.  
  502. { Registration function types }
  503.  
  504.   TDLLRegisterServer = function: HResult stdcall;
  505.   TDLLUnregisterServer = function: HResult stdcall;
  506.  
  507. { TPointF structure }
  508.  
  509.   PPointF = ^TPointF;
  510.   {$EXTERNALSYM tagPOINTFX}
  511.   tagPOINTFX = record
  512.     x: Single;
  513.     y: Single;
  514.   end;
  515.   TPointF = tagPOINTFX;
  516.   {$EXTERNALSYM POINTF}
  517.   POINTF = tagPOINTFX;
  518.  
  519. { TControlInfo structure }
  520.  
  521.   PControlInfo = ^TControlInfo;
  522.   {$EXTERNALSYM tagCONTROLINFO}
  523.   tagCONTROLINFO = record
  524.     cb: Longint;
  525.     hAccel: HAccel;
  526.     cAccel: Word;
  527.     dwFlags: Longint;
  528.   end;
  529.   TControlInfo = tagCONTROLINFO;
  530.   {$EXTERNALSYM CONTROLINFO}
  531.   CONTROLINFO = tagCONTROLINFO;
  532.  
  533. { Forward declarations }
  534.  
  535.   {$EXTERNALSYM IOleControl}
  536.   IOleControl = class;
  537.   {$EXTERNALSYM IOleControlSite}
  538.   IOleControlSite = class;
  539.   {$EXTERNALSYM ISimpleFrameSite}
  540.   ISimpleFrameSite = class;
  541.   {$EXTERNALSYM IPersistStreamInit}
  542.   IPersistStreamInit = class;
  543.   {$EXTERNALSYM IPropertyNotifySink }
  544.   IPropertyNotifySink = class;
  545.   {$EXTERNALSYM IProvideClassInfo }
  546.   IProvideClassInfo = class;
  547.   {$EXTERNALSYM IConnectionPointContainer}
  548.   IConnectionPointContainer = class;
  549.   {$EXTERNALSYM IEnumConnectionPoints}
  550.   IEnumConnectionPoints = class;
  551.   {$EXTERNALSYM IConnectionPoint}
  552.   IConnectionPoint = class;
  553.   {$EXTERNALSYM IEnumConnections}
  554.   IEnumConnections = class;
  555.   {$EXTERNALSYM IClassFactory2 }
  556.   IClassFactory2 = class;
  557.   {$EXTERNALSYM ISpecifyPropertyPages }
  558.   ISpecifyPropertyPages = class;
  559.   {$EXTERNALSYM IPerPropertyBrowsing}
  560.   IPerPropertyBrowsing = class;
  561.   {$EXTERNALSYM IPropertyPageSite}
  562.   IPropertyPageSite = class;
  563.   {$EXTERNALSYM IPropertyPage }
  564.   IPropertyPage = class;
  565.   {$EXTERNALSYM IPropertyPage2 }
  566.   IPropertyPage2 = class;
  567.   {$EXTERNALSYM IFont }
  568.   IFont = class;
  569.   {$EXTERNALSYM IFontDisp}
  570.   IFontDisp = class;
  571.   {$EXTERNALSYM IPicture}
  572.   IPicture = class;
  573.   {$EXTERNALSYM IPictureDisp}
  574.   IPictureDisp = class;
  575.  
  576. { IOleControl interface }
  577.  
  578.   {$EXTERNALSYM IOleControl}
  579.   IOleControl = class(IUnknown)
  580.   public
  581.     function GetControlInfo(var ci: TControlInfo): HResult; virtual; stdcall; abstract;
  582.     function OnMnemonic(msg: PMsg): HResult; virtual; stdcall; abstract;
  583.     function OnAmbientPropertyChange(dispid: TDispID): HResult; virtual; stdcall; abstract;
  584.     function FreezeEvents(bFreeze: BOOL): HResult; virtual; stdcall; abstract;
  585.   end;
  586.  
  587. { IOleControlSite interface }
  588.  
  589.   {$EXTERNALSYM IOleControlSite}
  590.   IOleControlSite = class(IUnknown)
  591.   public
  592.     function OnControlInfoChanged: HResult; virtual; stdcall; abstract;
  593.     function LockInPlaceActive(fLock: BOOL): HResult; virtual; stdcall; abstract;
  594.     function GetExtendedControl(var disp: IDispatch): HResult; virtual; stdcall; abstract;
  595.     function TransformCoords(var ptlHimetric: TPoint; var ptfContainer: TPointF;
  596.       flags: Longint): HResult; virtual; stdcall; abstract;
  597.     function TranslateAccelerator(msg: PMsg; grfModifiers: Longint): HResult;
  598.        virtual; stdcall; abstract;
  599.     function OnFocus(fGotFocus: BOOL): HResult; virtual; stdcall; abstract;
  600.     function ShowPropertyFrame: HResult; virtual; stdcall; abstract;
  601.   end;
  602.  
  603. { ISimpleFrameSite interface }
  604.  
  605.   {$EXTERNALSYM ISimpleFrameSite}
  606.   ISimpleFrameSite = class(IUnknown)
  607.   public
  608.     function PreMessageFilter(wnd: HWnd; msg, wp, lp: Integer;
  609.       var res: Integer; var Cookie: Longint): HResult;
  610.       virtual; stdcall; abstract;
  611.     function PostMessageFilter(wnd: HWnd; msg, wp, lp: Integer;
  612.       var res: Integer; Cookie: Longint): HResult;
  613.       virtual; stdcall; abstract;
  614.   end;
  615.  
  616. { IPersistStreamInit interface }
  617.  
  618.   {$EXTERNALSYM IPersistStreamInit}
  619.   IPersistStreamInit = class(IPersistStream)
  620.   public
  621.     function InitNew: HResult; virtual; stdcall; abstract;
  622.   end;
  623.  
  624. { IPropertyNotifySink interface }
  625.  
  626.   {$EXTERNALSYM IPropertyNotifySink }
  627.   IPropertyNotifySink = class(IUnknown)
  628.   public
  629.     function OnChanged(dispid: TDispID): HResult; virtual; stdcall; abstract;
  630.     function OnRequestEdit(dispid: TDispID): HResult; virtual; stdcall; abstract;
  631.   end;
  632.  
  633. { IProvideClassInfo interface }
  634.  
  635.   {$EXTERNALSYM IProvideClassInfo }
  636.   IProvideClassInfo = class(IUnknown)
  637.   public
  638.     function GetClassInfo(var ti: ITypeInfo): HResult; virtual; stdcall; abstract;
  639.   end;
  640.  
  641. { IConnectionPointContainer interface }
  642.  
  643.   {$EXTERNALSYM IConnectionPointContainer}
  644.   IConnectionPointContainer = class(IUnknown)
  645.   public
  646.     function EnumConnectionPoints(var Enum: IEnumConnectionPoints): HResult;
  647.       virtual; stdcall; abstract;
  648.     function FindConnectionPoint(const iid: TIID;
  649.       var cp: IConnectionPoint): HResult; virtual; stdcall; abstract;
  650.   end;
  651.  
  652. { IEnumConnectionPoints interface }
  653.  
  654.   {$EXTERNALSYM IEnumConnectionPoints}
  655.   IEnumConnectionPoints = class(IUnknown)
  656.   public
  657.     function Next(celt: Longint; var elt;
  658.       pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
  659.     function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
  660.     function Reset: HResult; virtual; stdcall; abstract;
  661.     function Clone(var Enum: IEnumConnectionPoints): HResult;
  662.       virtual; stdcall; abstract;
  663.   end;
  664.  
  665. { IConnectionPoint interface }
  666.  
  667.   {$EXTERNALSYM IConnectionPoint}
  668.   IConnectionPoint = class(IUnknown)
  669.   public
  670.     function GetConnectionInterface(var iid: TIID): HResult; virtual; stdcall; abstract;
  671.     function GetConnectionPointContainer(var cpc: IConnectionPointContainer): HResult;
  672.       virtual; stdcall; abstract;
  673.     function Advise(unkSink: IUnknown; var dwCookie: Longint): HResult; virtual; stdcall; abstract;
  674.     function Unadvise(dwCookie: Longint): HResult; virtual; stdcall; abstract;
  675.     function EnumConnections(var Enum: IEnumConnections): HResult; virtual; stdcall; abstract;
  676.   end;
  677.  
  678. { TConnectData structure }
  679.  
  680.   PConnectData = ^TConnectData;
  681.   {$EXTERNALSYM tagCONNECTDATA}
  682.   tagCONNECTDATA = record
  683.     pUnk: IUnknown;
  684.     dwCookie: Longint;
  685.   end;
  686.   TConnectData = tagCONNECTDATA;
  687.   {$EXTERNALSYM CONNECTDATA}
  688.   CONNECTDATA = tagCONNECTDATA;
  689.  
  690. { IEnumConnections interface }
  691.  
  692.   {$EXTERNALSYM IEnumConnections}
  693.   IEnumConnections = class(IUnknown)
  694.   public
  695.     function Next(celt: Longint; var elt;
  696.       pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
  697.     function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
  698.     function Reset: HResult; virtual; stdcall; abstract;
  699.     function Clone(var Enum: IEnumConnections): HResult; virtual; stdcall; abstract;
  700.   end;
  701.  
  702. { TLicInfo structure }
  703.  
  704.   PLicInfo = ^TLicInfo;
  705.   {$EXTERNALSYM tagLICINFO}
  706.   tagLICINFO = record
  707.     cbLicInfo: Longint;
  708.     fRuntimeKeyAvail: BOOL;
  709.     fLicVerified: BOOL;
  710.   end;
  711.   TLicInfo = tagLICINFO;
  712.   {$EXTERNALSYM LICINFO}
  713.   LICINFO = tagLICINFO;
  714.  
  715. { IClassFactory2 interface }
  716.  
  717.   {$EXTERNALSYM IClassFactory2 }
  718.   IClassFactory2 = class(IClassFactory)
  719.     function GetLicInfo(var licInfo: TLicInfo): HResult; virtual; stdcall; abstract;
  720.     function RequestLicKey(dwResrved: Longint; var bstrKey: TBStr): HResult;
  721.       virtual; stdcall; abstract;
  722.     function CreateInstanceLic(unkOuter: IUnknown; unkReserved: IUnknown;
  723.       const iid: TIID; bstrKey: TBStr; var vObject): HResult; virtual; stdcall; abstract;
  724.   end;
  725.  
  726. { TCAUUID structure - a counted array of TGUID }
  727.  
  728.   PGUIDList = ^TGUIDList;
  729.   TGUIDList = array[0..65535] of TGUID;
  730.  
  731.   PCAGUID = ^TCAGUID;
  732.   TCAGUID = record
  733.     cElems: Longint;
  734.     pElems: PGUIDList;
  735.   end;
  736.  
  737. { TCAPOleStr structure - a counted array of POleStr }
  738.  
  739.   PCAPOleStr = ^TCAPOleStr;
  740.   TCAPOleStr = record
  741.     cElems: Longint;
  742.     pElems: POleStrList;
  743.   end;
  744.  
  745. { TCALongint - a counted array of Longint }
  746.  
  747.   PLongintList = ^TLongintList;
  748.   TLongintList = array[0..65535] of Longint;
  749.  
  750.   PCALongint = ^TCALongint;
  751.   TCALongint = record
  752.     cElems: Longint;
  753.     pElems: PLongintList;
  754.   end;
  755.  
  756. { TOCPFIParams - parameters for OleCreatePropertyFrameIndirect }
  757.  
  758.   POCPFIParams = ^TOCPFIParams;
  759.   {$EXTERNALSYM tagOCPFIPARAMS}
  760.   tagOCPFIPARAMS = record
  761.     cbStructSize: Longint;
  762.     hWndOwner: HWnd;
  763.     x: Integer;
  764.     y: Integer;
  765.     lpszCaption: POleStr;
  766.     cObjects: Longint;
  767.     pObjects: Pointer;
  768.     cPages: Longint;
  769.     pPages: Pointer;
  770.     lcid: TLCID;
  771.     dispidInitialProperty: TDispID;
  772.   end;
  773.   TOCPFIParams = tagOCPFIPARAMS;
  774.   {$EXTERNALSYM OCPFIPARAMS}
  775.   OCPFIPARAMS = tagOCPFIPARAMS;
  776.  
  777. { TPropPageInfo structure - information about a property page }
  778.  
  779.   PPropPageInfo = ^TPropPageInfo;
  780.   {$EXTERNALSYM tagPROPPAGEINFO}
  781.   tagPROPPAGEINFO = record
  782.     cb: Longint;
  783.     pszTitle: POleStr;
  784.     size: TSize;
  785.     pszDocString: POleStr;
  786.     pszHelpFile: POleStr;
  787.     dwHelpContext: Longint;
  788.   end;
  789.   TPropPageInfo = tagPROPPAGEINFO;
  790.   {$EXTERNALSYM PROPPAGEINFO}
  791.   PROPPAGEINFO = tagPROPPAGEINFO;
  792.  
  793. { ISpecifyPropertyPages interface }
  794.  
  795.   {$EXTERNALSYM ISpecifyPropertyPages }
  796.   ISpecifyPropertyPages = class(IUnknown)
  797.   public
  798.     function GetPages(var pages: TCAGUID): HResult; virtual; stdcall; abstract;
  799.   end;
  800.  
  801. { IPerPropertyBrowsing interface }
  802.  
  803.   {$EXTERNALSYM IPerPropertyBrowsing}
  804.   IPerPropertyBrowsing = class(IUnknown)
  805.   public
  806.     function GetDisplayString(dispid: TDispID; var bstr: TBStr): HResult;
  807.       virtual; stdcall; abstract;
  808.     function MapPropertyToPage(dispid: TDispID; var clsid: TCLSID): HResult;
  809.       virtual; stdcall; abstract;
  810.     function GetPredefinedStrings(dispid: TDispID; var caStringsOut: TCAPOleStr;
  811.       var caCookiesOut: TCALongint): HResult; virtual; stdcall; abstract;
  812.     function GetPredefinedValue(dispid: TDispID; dwCookie: Longint;
  813.       var varOut: Variant): HResult; virtual; stdcall; abstract;
  814.   end;
  815.  
  816. { IPropertyPageSite interface }
  817.  
  818.   {$EXTERNALSYM IPropertyPageSite}
  819.   IPropertyPageSite = class(IUnknown)
  820.   public
  821.     function OnStatusChange(flags: Longint): HResult; virtual; stdcall; abstract;
  822.     function GetLocaleID(var localeID: TLCID): HResult; virtual; stdcall; abstract;
  823.     function GetPageContainer(var unk: IUnknown): HResult; virtual; stdcall; abstract;
  824.     function TranslateAccelerator(msg: PMsg): HResult; virtual; stdcall; abstract;
  825.   end;
  826.  
  827. { IPropertyPage interface }
  828.  
  829.   {$EXTERNALSYM IPropertyPage }
  830.   IPropertyPage = class(IUnknown)
  831.   public
  832.     function SetPageSite(pageSite: IPropertyPageSite): HResult; virtual; stdcall; abstract;
  833.     function Activate(hwndParent: HWnd; const rc: TRect; bModal: BOOL): HResult;
  834.       virtual; stdcall; abstract;
  835.     function Deactivate: HResult; virtual; stdcall; abstract;
  836.     function GetPageInfo(var pageInfo: TPropPageInfo): HResult; virtual; stdcall; abstract;
  837.     function SetObjects(cObjects: Longint; unk: IUnknown): HResult; virtual; stdcall; abstract;
  838.     function Show(nCmdShow: Integer): HResult; virtual; stdcall; abstract;
  839.     function Move(const rect: TRect): HResult; virtual; stdcall; abstract;
  840.     function IsPageDirty: HResult; virtual; stdcall; abstract;
  841.     function Apply: HResult; virtual; stdcall; abstract;
  842.     function Help(pszHelpDir: POleStr): HResult; virtual; stdcall; abstract;
  843.     function TranslateAccelerator(msg: PMsg): HResult; virtual; stdcall; abstract;
  844.   end;
  845.  
  846. { IPropertyPage2 interface }
  847.  
  848.   {$EXTERNALSYM IPropertyPage2 }
  849.   IPropertyPage2 = class(IPropertyPage)
  850.   public
  851.     function EditProperty(dispid: TDispID): HResult; virtual; stdcall; abstract;
  852.   end;
  853.  
  854. { IFont interface }
  855.  
  856.   {$EXTERNALSYM IFont }
  857.   IFont = class(IUnknown)
  858.   public
  859.     function get_Name(var name: TBStr): HResult; virtual; stdcall; abstract;
  860.     function put_Name(name: TBStr): HResult; virtual; stdcall; abstract;
  861.     function get_Size(var size: TCurrency): HResult; virtual; stdcall; abstract;
  862.     function put_Size(size: TCurrency): HResult; virtual; stdcall; abstract;
  863.     function get_Bold(var bold: BOOL): HResult; virtual; stdcall; abstract;
  864.     function put_Bold(bold: BOOL): HResult; virtual; stdcall; abstract;
  865.     function get_Italic(var italic: BOOL): HResult; virtual; stdcall; abstract;
  866.     function put_Italic(italic: BOOL): HResult; virtual; stdcall; abstract;
  867.     function get_Underline(var underline: BOOL): HResult; virtual; stdcall; abstract;
  868.     function put_Underline(underline: BOOL): HResult; virtual; stdcall; abstract;
  869.     function get_Strikethrough(var strikethrough: BOOL): HResult; virtual; stdcall; abstract;
  870.     function put_Strikethrough(strikethrough: BOOL): HResult; virtual; stdcall; abstract;
  871.     function get_Weight(var weight: Smallint): HResult; virtual; stdcall; abstract;
  872.     function put_Weight(weight: Smallint): HResult; virtual; stdcall; abstract;
  873.     function get_Charset(var charset: Smallint): HResult; virtual; stdcall; abstract;
  874.     function put_Charset(charset: Smallint): HResult; virtual; stdcall; abstract;
  875.     function get_hFont(var font: HFont): HResult; virtual; stdcall; abstract;
  876.     function Clone(var font: IFont): HResult; virtual; stdcall; abstract;
  877.     function IsEqual(fontOther: IFont): HResult; virtual; stdcall; abstract;
  878.     function SetRatio(cyLogical, cyHimetric: Longint): HResult; virtual; stdcall; abstract;
  879.     function QueryTextMetrics(var tm: TTextMetricOle): HResult; virtual; stdcall; abstract;
  880.     function AddRefHfont(font: HFont): HResult; virtual; stdcall; abstract;
  881.     function ReleaseHfont(font: HFont): HResult; virtual; stdcall; abstract;
  882.   end;
  883.  
  884. { IFontDisp interface }
  885.  
  886.   {$EXTERNALSYM IFontDisp}
  887.   IFontDisp = class(IDispatch);
  888.  
  889. { TFontDesc structure }
  890.  
  891.   PFontDesc = ^TFontDesc;
  892.   {$EXTERNALSYM tagFONTDESC}
  893.   tagFONTDESC = record
  894.     cbSizeofstruct: Integer;
  895.     lpstrName: POleStr;
  896.     cySize: Comp;
  897.     sWeight: Smallint;
  898.     sCharset: Smallint;
  899.     fItalic: BOOL;
  900.     fUnderline: BOOL;
  901.     fStrikethrough: BOOL;
  902.   end;
  903.   TFontDesc = tagFONTDESC;
  904.   {$EXTERNALSYM FONTDESC}
  905.   FONTDESC = tagFONTDESC;
  906.  
  907. { IPicture interface }
  908.  
  909.   {$EXTERNALSYM IPicture}
  910.   IPicture = class(IUnknown)
  911.   public
  912.     function get_Handle(var handle: OLE_HANDLE): HResult;  virtual; stdcall; abstract;
  913.     function get_hPal(var handle: OLE_HANDLE): HResult; virtual; stdcall; abstract;
  914.     function get_Type(var typ: Smallint): HResult; virtual; stdcall; abstract;
  915.     function get_Width(var width: OLE_XSIZE_HIMETRIC): HResult; virtual; stdcall; abstract;
  916.     function get_Height(var height: OLE_YSIZE_HIMETRIC): HResult; virtual; stdcall; abstract;
  917.     function Render(dc: HDC; x, y, cx, cy: Longint;
  918.       xSrc: OLE_XPOS_HIMETRIC; ySrc: OLE_YPOS_HIMETRIC;
  919.       cxSrc: OLE_XSIZE_HIMETRIC; cySrc: OLE_YSIZE_HIMETRIC;
  920.       const rcWBounds: TRect): HResult; virtual; stdcall; abstract;
  921.     function set_hPal(hpal: OLE_HANDLE): HResult; virtual; stdcall; abstract;
  922.     function get_CurDC(var dcOut: HDC): HResult; virtual; stdcall; abstract;
  923.     function SelectPicture(dcIn: HDC; var hdcOut: HDC;
  924.       var bmpOut: OLE_HANDLE): HResult; virtual; stdcall; abstract;
  925.     function get_KeepOriginalFormat(var fkeep: BOOL): HResult; virtual; stdcall; abstract;
  926.     function put_KeepOriginalFormat(fkeep: BOOL): HResult; virtual; stdcall; abstract;
  927.     function PictureChanged: HResult; virtual; stdcall; abstract;
  928.     function SaveAsFile(stream: IStream; fSaveMemCopy: BOOL;
  929.       var cbSize: Longint): HResult; virtual; stdcall; abstract;
  930.     function get_Attributes(dwAttr: Longint): HResult; virtual; stdcall; abstract;
  931.   end;
  932.  
  933. { IPictureDisp interface }
  934.  
  935.   {$EXTERNALSYM IPictureDisp}
  936.   IPictureDisp = class(IDispatch);
  937.  
  938. { TPictDesc structure }
  939.  
  940.   PPictDesc = ^TPictDesc;
  941.   {$EXTERNALSYM tagPICTDESC}
  942.   tagPICTDESC = record
  943.     cbSizeofstruct: Integer;
  944.     picType: Integer;
  945.     case Integer of
  946.       PICTYPE_BITMAP: (
  947.         hbitmap: THandle;       { Bitmap }
  948.         hpal: THandle);         { Accompanying palette }
  949.       PICTYPE_METAFILE: (
  950.         hMeta: THandle;         { Metafile }
  951.         xExt, yExt: Integer);   { Extent }
  952.       PICTYPE_ICON: (
  953.         hIcon: THandle);        { Icon }
  954.   end;
  955.   TPictDesc = tagPICTDESC;
  956.   {$EXTERNALSYM PICTDESC}
  957.   PICTDESC = tagPICTDESC;
  958.  
  959. const
  960.  
  961. { Standard interface IDs }
  962.  
  963.   {$EXTERNALSYM IID_IPropertyNotifySink}
  964.   IID_IPropertyNotifySink: TGUID = (
  965.     D1:$9BFBBC02;D2:$EFF1;D3:$101A;D4:($84,$ED,$00,$AA,$00,$34,$1D,$07));
  966.   {$EXTERNALSYM IID_IClassFactory2}
  967.   IID_IClassFactory2: TGUID = (
  968.     D1:$B196B28F;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  969.   {$EXTERNALSYM IID_IProvideClassInfo}
  970.   IID_IProvideClassInfo: TGUID = (
  971.     D1:$B196B283;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  972.   {$EXTERNALSYM IID_IConnectionPointContainer}
  973.   IID_IConnectionPointContainer: TGUID = (
  974.     D1:$B196B284;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  975.   {$EXTERNALSYM IID_IEnumConnectionPoints}
  976.   IID_IEnumConnectionPoints: TGUID = (
  977.     D1:$B196B285;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  978.   {$EXTERNALSYM IID_IConnectionPoint}
  979.   IID_IConnectionPoint: TGUID = (
  980.     D1:$B196B286;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  981.   {$EXTERNALSYM IID_IEnumConnections}
  982.   IID_IEnumConnections: TGUID = (
  983.     D1:$B196B287;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  984.   {$EXTERNALSYM IID_IOleControl}
  985.   IID_IOleControl: TGUID = (
  986.     D1:$B196B288;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  987.   {$EXTERNALSYM IID_IOleControlSite}
  988.   IID_IOleControlSite: TGUID = (
  989.     D1:$B196B289;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  990.   {$EXTERNALSYM IID_ISimpleFrameSite}
  991.   IID_ISimpleFrameSite: TGUID = (
  992.     D1:$742B0E01;D2:$14E6;D3:$101B;D4:($91,$4E,$00,$AA,$00,$30,$0C,$AB));
  993.   {$EXTERNALSYM IID_IPersistStreamInit}
  994.   IID_IPersistStreamInit: TGUID = (
  995.     D1:$7FD52380;D2:$4E07;D3:$101B;D4:($AE,$2D,$08,$00,$2B,$2E,$C7,$13));
  996.   {$EXTERNALSYM IID_IPropertyFrame}
  997.   IID_IPropertyFrame: TGUID = (
  998.     D1:$B196B28A;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  999.   {$EXTERNALSYM IID_ISpecifyPropertyPages}
  1000.   IID_ISpecifyPropertyPages: TGUID = (
  1001.     D1:$B196B28B;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  1002.   {$EXTERNALSYM IID_IPerPropertyBrowsing}
  1003.   IID_IPerPropertyBrowsing: TGUID = (
  1004.     D1:$376BD3AA;D2:$3845;D3:$101B;D4:($84,$ED,$08,$00,$2B,$2E,$C7,$13));
  1005.   {$EXTERNALSYM IID_IPropertyPageSite}
  1006.   IID_IPropertyPageSite: TGUID = (
  1007.     D1:$B196B28C;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  1008.   {$EXTERNALSYM IID_IPropertyPage}
  1009.   IID_IPropertyPage: TGUID = (
  1010.     D1:$B196B28D;D2:$BAB4;D3:$101A;D4:($B6,$9C,$00,$AA,$00,$34,$1D,$07));
  1011.   {$EXTERNALSYM IID_IPropertyPage2}
  1012.   IID_IPropertyPage2: TGUID = (
  1013.     D1:$01E44665;D2:$24AC;D3:$101B;D4:($84,$ED,$08,$00,$2B,$2E,$C7,$13));
  1014.   {$EXTERNALSYM IID_IFont}
  1015.   IID_IFont: TGUID = (
  1016.     D1:$BEF6E002;D2:$A874;D3:$101A;D4:($8B,$BA,$00,$AA,$00,$30,$0C,$AB));
  1017.   {$EXTERNALSYM IID_IFontDisp}
  1018.   IID_IFontDisp: TGUID = (
  1019.     D1:$BEF6E003;D2:$A874;D3:$101A;D4:($8B,$BA,$00,$AA,$00,$30,$0C,$AB));
  1020.   {$EXTERNALSYM IID_IPicture}
  1021.   IID_IPicture: TGUID = (
  1022.     D1:$7BF80980;D2:$BF32;D3:$101A;D4:($8B,$BB,$00,$AA,$00,$30,$0C,$AB));
  1023.   {$EXTERNALSYM IID_IPictureDisp}
  1024.   IID_IPictureDisp: TGUID = (
  1025.     D1:$7Bf80981;D2:$BF32;D3:$101A;D4:($8B,$BB,$00,$AA,$00,$30,$0C,$AB));
  1026.  
  1027. { Standard class IDs }
  1028.  
  1029.   CLSID_CFontPropPage: TGUID = (
  1030.     D1:$2542f180;D2:$3532;D3:$1069;D4:($a2,$cd,$00,$aa,$00,$34,$b5,$0b));
  1031.   CLSID_CColorPropPage: TGUID = (
  1032.     D1:$ddf5a600;D2:$b9c0;D3:$101a;D4:($af,$1a,$00,$aa,$00,$34,$b5,$0b));
  1033.   CLSID_CPicturePropPage: TGUID = (
  1034.     D1:$fc7af71d;D2:$fc74;D3:$101a;D4:($84,$ed,$08,$00,$2b,$2e,$c7,$13));
  1035.   CLSID_PersistPropset: TGUID = (
  1036.     D1:$fb8f0821;D2:$0164;D3:$101b;D4:($84,$ed,$08,$00,$2b,$2e,$c7,$13));
  1037.   CLSID_ConvertVBX: TGUID = (
  1038.     D1:$fb8f0822;D2:$0164;D3:$101b;D4:($84,$ed,$08,$00,$2b,$2e,$c7,$13));
  1039.   CLSID_StdFont: TGUID = (
  1040.     D1:$fb8f0823;D2:$0164;D3:$101b;D4:($84,$ed,$08,$00,$2b,$2e,$c7,$13));
  1041.   CLSID_StdPicture: TGUID = (
  1042.     D1:$fb8f0824;D2:$0164;D3:$101b;D4:($84,$ed,$08,$00,$2b,$2e,$c7,$13));
  1043.  
  1044. { Property frame APIs }
  1045.  
  1046. {$EXTERNALSYM OleCreatePropertyFrame}
  1047. function OleCreatePropertyFrame(hwndOwner: HWnd; x, y: Integer;
  1048.   lpszCaption: POleStr; cObjects: Integer; pObjects: Pointer;
  1049.   cPages: Integer; pPageCLSIDs: Pointer; lcid: TLCID; dwReserved: Longint;
  1050.   pvReserved: Pointer): HResult; stdcall;
  1051.  
  1052. {$EXTERNALSYM OleCreatePropertyFrameIndirect}
  1053. function OleCreatePropertyFrameIndirect(var Params: TOCPFIParams): HResult; stdcall;
  1054.  
  1055. { Standard type APIs }
  1056.  
  1057. {$EXTERNALSYM OleTranslateColor}
  1058. function OleTranslateColor(clr: TOleColor; hpal: HPalette;
  1059.  var colorref: TColorRef): HResult; stdcall;
  1060.  
  1061. {$EXTERNALSYM OleCreateFontIndirect}
  1062. function OleCreateFontIndirect(var FontDesc: TFontDesc; const iid: TIID;
  1063.   var vObject): HResult; stdcall;
  1064.  
  1065. {$EXTERNALSYM OleCreatePictureIndirect}
  1066. function OleCreatePictureIndirect(var PictDesc: TPictDesc; const iid: TIID;
  1067.   fOwn: BOOL; var vObject): HResult; stdcall;
  1068.  
  1069. {$EXTERNALSYM OleLoadPicture}
  1070. function OleLoadPicture(stream: IStream; lSize: Longint; fRunmode: BOOL;
  1071.   const iid: TIID; var vObject): HResult; stdcall;
  1072.  
  1073. {$EXTERNALSYM OleIconToCursor}
  1074. function OleIconToCursor(hinstExe: THandle; hIcon: THandle): HCursor; stdcall;
  1075.  
  1076. implementation
  1077.  
  1078. const
  1079.   olepro32 = 'olepro32.dll';
  1080.  
  1081. { Externals from olepro32.dll }
  1082.  
  1083. function OleCreatePropertyFrame;            external olepro32 name 'OleCreatePropertyFrame';
  1084. function OleCreatePropertyFrameIndirect;    external olepro32 name 'OleCreatePropertyFrameIndirect';
  1085. function OleTranslateColor;                 external olepro32 name 'OleTranslateColor';
  1086. function OleCreateFontIndirect;             external olepro32 name 'OleCreateFontIndirect';
  1087. function OleCreatePictureIndirect;          external olepro32 name 'OleCreatePictureIndirect';
  1088. function OleLoadPicture;                    external olepro32 name 'OleLoadPicture';
  1089. function OleIconToCursor;                   external olepro32 name 'OleIconToCursor';
  1090.  
  1091. end.
  1092.